package fem2.gui;

interface LoadStepMgr {

    /**
     * Returns the load step currently set.
     * 
     * @return the current load step
     */
    public int getCurrentLoadStep();

    /**
     * Returns the substep currently set.
     * 
     * @return the current substep
     */
    public int getCurrentSubstep();

    /**
     * Returns the analysis time currently set.
     * 
     * @return the current analysis time
     */
    public double getCurrentTime();

    /**
     * Returns the number of defined load steps.
     * 
     * @return the number of load steps
     */
    public int getLoadStepCount();

    /**
     * Returns the number of substeps in the specified load step.
     * 
     * @param loadStep
     *            the load step
     * @return the number of substeps
     */
    public int getSubstepCount(int loadStep);

    /**
     * Returns the analysis time associated with the specified load step/substep
     * pair.
     * 
     * @param loadStep
     *            the load step
     * @param substep
     *            the substep
     * @return the associated analysis time
     */
    public double getTime(int loadStep, int substep);

    /**
     * Restores the state of the model corresponding to the specified load
     * step/substep pair.
     * 
     * @param loadStep
     *            the load step
     * @param substep
     *            the substep
     */
    public void restore(int loadStep, int substep);
}
